package com.ryder.petmatediarybackend.module.shop.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

import java.util.List;

/**
 * 描述：创建店铺DTO
 *
 * @author Ryder
 * @version 1.0
 * @since 1.0
 * 更新日期: 2025-10-31
 */
@Data
@Schema(description = "创建店铺请求DTO")
public class CreateShopDTO {

    @NotBlank(message = "店铺名称不能为空")
    @Schema(description = "店铺名称", example = "爱宠之家宠物店", required = true)
    private String shopName;

    @NotNull(message = "店铺类型不能为空")
    @Schema(description = "店铺类型：1=宠物店 2=宠物医院 3=宠物美容 4=综合", example = "1", required = true)
    private Integer shopType;

    @NotBlank(message = "联系电话不能为空")
    @Schema(description = "联系电话", example = "138-1234-5678", required = true)
    private String phone;

    @NotBlank(message = "店铺地址不能为空")
    @Schema(description = "店铺地址", example = "北京市朝阳区某某街道123号", required = true)
    private String address;

    @Schema(description = "省份", example = "北京市")
    private String province;

    @Schema(description = "城市", example = "北京市")
    private String city;

    @Schema(description = "区县", example = "朝阳区")
    private String district;

    @NotNull(message = "经度不能为空")
    @Schema(description = "经度", example = "116.407526", required = true)
    private Double longitude;

    @NotNull(message = "纬度不能为空")
    @Schema(description = "纬度", example = "39.904030", required = true)
    private Double latitude;

    @Schema(description = "营业时间", example = "09:00 - 21:00")
    private String businessHours;

    @Schema(description = "店铺描述", example = "专业的宠物护理服务")
    private String description;

    @Schema(description = "店铺封面图URL", example = "https://minio.xxx.com/petmate/shop/cover/xxx.jpg")
    private String coverImage;

    @Schema(description = "门面照片URL列表（JSON数组）")
    private List<String> facadeImages;

    @Schema(description = "内部照片URL列表（JSON数组）")
    private List<String> interiorImages;
}

